﻿
namespace CSD.Team4.RSA.Core
{
    /// <summary>
    /// Вспомогательный класс
    /// </summary>
    internal class LargeIntegerUtils
    {
        /// <summary>
        /// Было ли переполнение
        /// </summary>
        public bool WasOverflow;

        /// <summary>
        /// Сложение двух цифр
        /// </summary>
        public uint AddDigits(uint a, uint b)
        {
            WasOverflow = false;
            if (a == 0)
                return b;
            if (b == 0)
                return a;
            var c = a;
            c += b;
            WasOverflow = c <= a && c <= b;
            return c;
        }

        /// <summary>
        /// Вычитание двух цифр
        /// </summary>
        public uint SubDigits(uint a, uint b)
        {
            WasOverflow = false;
            if (b == 0)
                return a;
            WasOverflow = a < b;
            return a - b;
        }
    }
}
